package br.mikhas.lang.compiler.parser;

public enum TokenType {
	/**
	 * End-of-File
	 */
	EOF(),
	/*
	 * Blocks
	 */
	/** Left parentheses */
	LPAREN("("),
	/** Right parentheses */
	RPAREN(")"),
	/** Left brackets */
	LBRACK("["),
	/** Right brackets */
	RBRACK("]"),
	/** Left braces */
	LBRACE("{"),
	/** Right braces */
	RBRACE("}"),
	/** Colon */
	COLON(":"),
	/** Semicolon */
	SCOLON(";"),
	/** Dot */
	DOT("."),
	/** COMMA */
	COMMA(",");
	private final String syntax;
	private final int priority;

	TokenType(String syntax, int priority) {
		this.syntax = syntax;
		this.priority = priority;
	}

	TokenType(int priority) {
		this(null, priority);
	}

	TokenType(String syntax) {
		this(syntax, 0);
	}

	TokenType() {
		this(null, 0);
	}
}
